package com.aner.test.controller;
import com.aner.tester.controller.BaseControllerTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.aner.tester.utils.text.StringUtils;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;


/**
 * PostTestControllerTest class
 * 
 * @author aner
 * @date 2020-12-27
 */
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@RunWith(SpringRunner.class)
@AutoConfigureMockMvc
public class PostTestControllerTest extends BaseControllerTest
{

    @Test
    public void testTest() {
        String params = "{'booleanTest':false,'byteTest':0,'dateTest':'2020-12-27 21:28:36','doubleTest':0.9691802148847093,'floatTest':0.744562,'intTest':0,'longTest':1,'stringTest':'的四公个'}";
        String jsonStr = StringUtils.replaceSingleQuoteWithDouble(params);
                    this.post("/test/", jsonStr);
        
    }
    @Test
    public void testRequestBodyMapTest() {
        String params = "{'猫个':'013041','小小告第猫第':'999','四小猫猫':'5780','广猪猫小4小':'92628'}";
        String jsonStr = StringUtils.replaceSingleQuoteWithDouble(params);
                    this.postBody("/testRequestBodyMap/", jsonStr);
        
    }
    @Test
    public void testRequestBodyListTest() {
        String params = "['省小小1广狗','小狗个']";
        String jsonStr = StringUtils.replaceSingleQuoteWithDouble(params);
                    this.postBody("/testRequestBodyList/", jsonStr);
        
    }
    @Test
    public void testRequestBodyLongTest() {
        String params = "0";
        String jsonStr = StringUtils.replaceSingleQuoteWithDouble(params);
                    this.postBody("/testRequestBodyLong/", jsonStr);
        
    }
    @Test
    public void testRequestParamListTest() {
        String params = "{'testList':['猪东的个','的1','第公猫1']}";
        String jsonStr = StringUtils.replaceSingleQuoteWithDouble(params);
                    this.post("/testRequestParamList/", jsonStr);
        
    }
    @Test
    public void testRequestParamDateTest() {
        String params = "{'testDate':'2020-12-27 21:28:36'}";
        String jsonStr = StringUtils.replaceSingleQuoteWithDouble(params);
                    this.post("/testRequestParamDate/", jsonStr);
        
    }
    @Test
    public void testRequestBodyDateTest() {
        String params = "1609075716109";
        String jsonStr = StringUtils.replaceSingleQuoteWithDouble(params);
                    this.postBody("/testRequestBodyDate/", jsonStr);
        
    }
    @Test
    public void testDateTest() {
        String params = "{'test':'2020-12-27 21:28:36'}";
        String jsonStr = StringUtils.replaceSingleQuoteWithDouble(params);
                    this.post("/testDate/", jsonStr);
        
    }
    @Test
    public void testBodyTest() {
        String params = "{'booleanTest':true,'byteTest':0,'dateTest':'2020-12-27 21:28:36','doubleTest':0.7866976629682745,'floatTest':0.84146214,'intTest':1,'longTest':1,'strArray':['广四告','0的四四猪'],'stringList':['故广小5的','猫公的公司安','狗的','东猪'],'stringTest':'个04','testObjectArray':[{'booleanTest':true,'byteTest':1,'dateTest':'2020-12-27 21:28:36','doubleTest':0.22505719172467398,'floatTest':0.441041,'intTest':0,'longTest':2,'stringTest':'东4狗22'},{'booleanTest':false,'byteTest':0,'dateTest':'2020-12-27 21:28:36','doubleTest':0.3962446446101202,'floatTest':0.45889145,'intTest':0,'longTest':2,'stringTest':'尔猪'},{'booleanTest':false,'byteTest':1,'dateTest':'2020-12-27 21:28:36','doubleTest':0.5371223674712748,'floatTest':0.8051029,'intTest':1,'longTest':2,'stringTest':'小尔4'},{'booleanTest':false,'byteTest':0,'dateTest':'2020-12-27 21:28:36','doubleTest':0.5784550799103402,'floatTest':0.59272826,'intTest':0,'longTest':2,'stringTest':'四省小'},{'booleanTest':false,'byteTest':0,'dateTest':'2020-12-27 21:28:36','doubleTest':0.7610294752451141,'floatTest':0.4078825,'intTest':0,'longTest':3,'stringTest':'的司省猫猫省'}],'testObjectList':[{'booleanTest':false,'byteTest':1,'dateTest':'2020-12-27 21:28:36','doubleTest':0.553025754964093,'floatTest':0.04017991,'intTest':0,'longTest':2,'stringTest':'狗1广猪1'},{'booleanTest':true,'byteTest':0,'dateTest':'2020-12-27 21:28:36','doubleTest':0.7192153173355528,'floatTest':0.78835857,'intTest':1,'longTest':0,'stringTest':'个小'},{'booleanTest':false,'byteTest':0,'dateTest':'2020-12-27 21:28:36','doubleTest':0.01350834766556519,'floatTest':0.3577875,'intTest':0,'longTest':2,'stringTest':'狗1小3'},{'booleanTest':false,'byteTest':1,'dateTest':'2020-12-27 21:28:36','doubleTest':0.23321684643752882,'floatTest':0.32677513,'intTest':0,'longTest':1,'stringTest':'2狗司小'},{'booleanTest':true,'byteTest':1,'dateTest':'2020-12-27 21:28:36','doubleTest':0.5465360497360391,'floatTest':0.5148718,'intTest':0,'longTest':1,'stringTest':'事2猪'},{'booleanTest':false,'byteTest':0,'dateTest':'2020-12-27 21:28:36','doubleTest':0.8907723241632727,'floatTest':0.37368214,'intTest':1,'longTest':3,'stringTest':'小告'}],'testObjectMap':{'狗5第广':'0065','2小1东':'6234','小3狗':'211793','东猫小的小':'19','安小':'104'}}";
        String jsonStr = StringUtils.replaceSingleQuoteWithDouble(params);
                    this.postBody("/testRequestBody/", jsonStr);
        
    }
    @Test
    public void testPathVariableTest() {
        String params = "{'params':['东2','猫3司','的猫第0的','5东狗','猪3司司','第省广三的事'],'id':[2,3]}";
        String jsonStr = StringUtils.replaceSingleQuoteWithDouble(params);
                    this.post("/testPathVariable/{params}/{id}", jsonStr);
        
    }
}
